linear block codes in information theory and coding